
<ui:composition template="template/template.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">

	<ui:param name="panelTitle" value="Listado de Usuarios" />

	<ui:define name="panelContent" class="admin-font">

		<p:growl id="messages" autoUpdate="false" showDetail="true"
			globalOnly="true" />
		<p:dataTable id="usuarios" var="usuario" paginator="true" rows="6"
			paginatorPosition="bottom" value="#{usuarioMB.usuarioList}"
			emptyMessage="¡No existen usuarios en el sistema!"
			style="width: 100%" filteredValue="#{usuarioMB.filteredUsuario}">

			<f:facet name="header">

			</f:facet>

			<p:column headerText="Usuario" styleClass="column-font"
				filterBy="#{usuario.nombreUser}" filterMatchMode="contains">
				<f:facet name="header">
					<h:outputText value="Usuario" />
				</f:facet>
				<h:outputText value="#{usuario.nombreUser}" />
			</p:column>

			<p:column headerText="Nombre" styleClass="column-font"
				filterBy="#{usuario.nombre}" filterMatchMode="contains">
				<f:facet name="header">
					<h:outputText value="Nombre" />
				</f:facet>
				<h:outputText value="#{usuario.nombre}" />
			</p:column>

			<p:column headerText="Apellido" styleClass="column-font"
				filterBy="#{usuario.apellido}" filterMatchMode="contains">
				<f:facet name="header">
					<h:outputText value="Apellido" />
				</f:facet>
				<h:outputText value="#{usuario.apellido}" />
			</p:column>

			<p:column headerText="E-mail" styleClass="column-font"
				filterBy="#{usuario.email}" filterMatchMode="contains">
				<f:facet name="header">
					<h:outputText value="e-Mail" />
				</f:facet>
				<h:outputText value="#{usuario.email}" />
			</p:column>

			<p:column headerText="Habilitado" styleClass="column-font">
				<f:facet name="header">
					<h:outputText value="Habilitado" />
				</f:facet>
				<h:outputText value="#{usuario.enable ? 'Si' : 'No'}" />

			</p:column>

			<p:column headerText="Opciones" styleClass="column-options"
				style="text-align:center; width:140px;" exportable="false">

				<p:commandLink id="view" update=":mainForm:displayView"
					oncomplete="popupUsuarioDatos.show();" title="Datos Usuario">
					<f:setPropertyActionListener value="#{usuario}"
						target="#{usuarioMB.usuarioSelected}" />
					<h:graphicImage library="images/icons" name="search.png" />
				</p:commandLink>

				<p:commandLink id="edit" title="Editar Datos"
					action="/admin/usuarioedit.html?faces-redirect=true" ajax="false">
					<f:setPropertyActionListener value="#{usuario}"
						target="#{usuarioMB.usuarioSelected}" />
					<h:graphicImage library="images/icons" name="pencil.png" />
				</p:commandLink>

				<p:commandLink id="darBaja" title="Dar de baja"
					onclick="confirmation.show();" type="button">
					<f:setPropertyActionListener value="#{usuario}"
						target="#{usuarioMB.usuarioSelected}" />
					<h:graphicImage library="images/icons" name="trash.png" />
				</p:commandLink>
				<p:confirmDialog id="confirmDialog"
					message="¿Está seguro que desea dar de baja este usuario?"
					header="Dar de baja usuario" severity="alert"
					widgetVar="confirmation">
					<div align="right">
						<p:commandButton id="confirm" value="Aceptar" update="messages"
							oncomplete="confirmation.hide();"
							action="#{usuarioMB.deleteUsuarioAdmin}" ajax="false">
						</p:commandButton>
						<p:commandButton id="decline" value="Cancelar"
							onclick="confirmation.hide();" type="button" />
					</div>
				</p:confirmDialog>

				<p:commandLink id="keys" title="Resetear clave de acceso"
					type="button" onclick="confirmationClave.show();">
					<f:setPropertyActionListener value="#{usuario}"
						target="#{usuarioMB.usuarioSelected}" />
					<h:graphicImage library="images/icons" name="keys.png" width="32"
						height="24" />
				</p:commandLink>
				<p:confirmDialog id="confirmDialogClave"
					message="¿Está seguro que desea generar una nueva clave de acceso para este cliente?"
					header="Nueva contraseña" severity="alert"
					widgetVar="confirmationClave">
					<div align="right">
						<p:commandButton id="confirmClave" value="Aceptar"
							update="messages" oncomplete="confirmationClave.hide();"
							action="#{usuarioMB.generarNuevaContraseñaUsuario}" ajax="false">
						</p:commandButton>
						<p:commandButton id="declineClave" value="Cancelar"
							onclick="confirmationClave.hide();" type="button" />
					</div>
				</p:confirmDialog>
			</p:column>

			<f:facet name="footer">

				<div align="center">
					<h:panelGrid columns="2" header="Exportar" style="width:100px;">
						<h:commandLink title="Exportar a excel">
							<p:graphicImage
								value="http://www.primefaces.org/showcase/images/excel.png" />
							<p:dataExporter type="xls" target="usuarios" fileName="Usuarios" />
						</h:commandLink>

						<h:commandLink title="Exportar a PDF">
							<p:graphicImage
								value="http://www.primefaces.org/showcase/images/pdf.png" />
							<p:dataExporter type="pdf" target="usuarios"
								preProcessor="#{documentExporterMB.listadoUsuariosPDF}"
								fileName="Usuarios" />
						</h:commandLink>
					</h:panelGrid>
					<h:panelGroup id="removeFilter" layout="block"
						style="text-align: right;">
						<p:commandLink id="quitarFiltro" value="Quitar Filtro"
							action="/admin/clientelist.html?faces-redirect=true" ajax="false" />
					</h:panelGroup>
				</div>
			</f:facet>

		</p:dataTable>
		<p>
			<h:panelGroup layout="block" style="text-align: right; width: 100%;">
				<p:commandButton id="addUsuario" value="Nuevo Usuario"
					action="/admin/usuarioadd.html?faces-redirect=true" ajax="false" />
			</h:panelGroup>
		</p>

		<!-- DIALOG PARA VER LOS DATOS DEL USUARIO SELECCIONADO -->
		<p:dialog header="Datos del Usuario" widgetVar="popupUsuarioDatos"
			resizable="false" id="carDlg" showEffect="fade" modal="true"
			draggable="false">

			<h:panelGrid id="displayView" columns="2" cellpadding="8"
				style="margin:0 auto;">

				<h:outputText value="Usuario: " />
				<h:outputText value="#{usuarioMB.usuarioSelected.nombreUser}"
					style="font-weight:bold" />

				<h:outputText value="Nombre: " />
				<h:outputText value="#{usuarioMB.usuarioSelected.nombre}"
					style="font-weight:bold" />

				<h:outputText value="Apellido: " />
				<h:outputText value="#{usuarioMB.usuarioSelected.apellido}"
					style="font-weight:bold" />

				<h:outputText value="E-mail: " />
				<h:outputText value="#{usuarioMB.usuarioSelected.email}"
					style="font-weight:bold" />

				<h:outputText value="Tipo Doc.: " />
				<h:outputText value="#{usuarioMB.usuarioSelected.tipoDoc.nombre}"
					style="font-weight:bold" />

				<h:outputText value="Nro. Documento: " />
				<h:outputText value="#{usuarioMB.usuarioSelected.nroDoc}"
					style="font-weight:bold" />

				<h:outputText value="Habilitado: " />
				<h:outputText
					value="#{usuarioMB.usuarioSelected.enable ? 'Si' : 'No'}"
					style="font-weight:bold" />

				<p:column>
				</p:column>
				<p:column style="text-align:right">
					<div align="right">
						<p:commandButton id="btnAceptar" value="Aceptar"
							onclick="popupUsuarioDatos.hide();" type="button" />
					</div>
				</p:column>

			</h:panelGrid>
		</p:dialog>

	</ui:define>
</ui:composition>